1. Field of the Invention
The present invention relates to telecommunications and, more particularly, to methods and systems for setting buffer size on a wireless communication device.
2. Description of Related Art
Wireless communication devices, such as mobile phones or other portable devices, may be presently capable of receiving “streaming” multimedia content over a network for playback to a user. In streaming, a media file does not need to be downloaded to a wireless communication device in its entirety, but rather can be played out to the user via a media player on the device in “real-time” as it is being downloaded to the wireless communication device from the network (e.g., from a network server, generally known as a “streaming media server”). In today's wireless networks, wireless subscribers may now, for example, use their wireless communication devices to receive streamed music/video files and even live TV and radio broadcasts.
Typically, in packet data networks, a sending entity will break a media stream down into chunks that are then each combined with additional header information to form a data packet for transmission over a network. Ideally, data packets would arrive at a wireless communication device at a constant rate (e.g., successive data packets would arrive 20 milliseconds apart). However, due to network congestion and/or other network-induced delays (e.g., queuing delays at intermediate network elements), individual data packets often suffer undesirable delays as they are being transported across the network, such that the time gaps between successive packets in a packet stream can vary. These variable “inter-packet gaps” are generally known as packet jitter.
To compensate for the effects of jitter and other variations, a media player on a wireless communication device will generally not play out media data contained in packets as soon as the packets arrive at a wireless communication device from a network. Rather, the packets will be temporarily stored in a data storage known as a “media buffer” (or “playback” or “playout” buffer) to “smooth out” the media stream for playback to a user. More specifically, the media buffer will hold the received data packets for a period of time before release for playout in order to buffer enough data to provide a substantially continuous media presentation to the user.
For example, in the beginning of a streaming media session, when the media buffer is empty, the media buffer may be filled with data before a media playout can begin. As a result, the user will typically experience a few-second delay before enjoying the streaming-media content. Subsequently, the media buffer may be continuously re-filled with data as more data packets continue to arrive from the network and the media player empties, or drains, the buffer.
Typically, a wireless carrier may set the size of a media buffer at some fixed default value (e.g., a number of seconds of media playout time, a number of bytes or packets, etc.) for use across all of its wireless subscribers' devices. A wireless subscriber's device will then use this default buffer-size setting for all streaming media sessions initiated by the device. Various problems, however, may arise with respect to such fixed default buffer size setting.
For example, if a media buffer size is set too large, a user may be initially forced to wait for too long for the media playout to begin. On the other hand, if the media buffer size is set too small, the media buffer may not provide a sufficient buffering delay during the streaming media session to remove jitter and/or other variations from a packet stream, resulting in video jerkiness, choppy audio, and/or other media degradations.
In addition, the media buffer size may not be adapted to variations in wireless network data transmissions rates (e.g., based on a location where a wireless communication device is located at the streaming-media-session initiation and/or network congestion during the streaming media session) that may lead to buffer underflows (i.e., empty-buffer conditions) or buffer overflows. To illustrate, in one example, during a period when the rate at which the wireless communication device receives data packets drops, the media buffer may underflow, because the media player may drain the media buffer at a faster rate than the rate at which data can flow into the buffer to re-fill the buffer. This may introduce undesirable pauses into the media stream being played out to a user.
Further, the current practice among wireless carriers of setting the size of a media buffer at some fixed default value for use across all their wireless subscribers' devices may not be desirable, since various wireless communication devices may inherently have different features/capabilities. For example, various makes/models of wireless communication devices may have different media player versions that may have different capabilities and characteristics, such as different buffer size limitations, buffer size specifications for optimal streaming performance, etc.
Thus, a need exists for a more selective method of selecting a suitable buffer size for use on a wireless communication device, and particularly, at the streaming-media-session initiation.